home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 2 / Gold Medal Software Volume 2 (Gold Medal) (1994).iso / windows / win31 / macsyma.arj / MACSDEMO.EXE / BALLIST2.OUT < prev    next >
Text File  |  1993-09-08  |  5KB  |  82 lines

  1.  
  2. (c1) /* SOLVE FOR TRAJECTORY OF A CANNON BALL
  3.        WITH GRAVITY, WIND, AND AIR RESISTANCE
  4.  
  5.       X  = Horizontal direction of initial trajectory
  6.       Z  = Vertical direction
  7.       M  = Mass of projectile
  8.       B  = Air resistance coefficient
  9.       G  = Gravitational constant
  10.       V0 = Muzzle velocity
  11.       THETA= Angle of gun elevation
  12.       W  = Wind speed (horizontal only)
  13.       PHI= Angle between wind and X-direction
  14. */
  15. depends( [x,y,z], t )$
  16.  
  17. (c2) assume( b>0 )$
  18.  
  19. (c3) eqx : m*diff(x,t,2) = - b*diff(x,t) + w*cos(phi);
  20. |$label(0,15,Times New Roman,$(d3$))m$hinge()$in( )$q($sup(d,2)x,d$sup(t,2))$hinge()$in( = )cos$paren($greektext(f))$in( )w$hinge()$in( - )b$in( )$q(dx,dt)
  21.  
  22. (c4) eqy : m*diff(y,t,2) = - b*diff(y,t) + w*sin(phi);
  23. |$label(0,15,Times New Roman,$(d4$))m$hinge()$in( )$q($sup(d,2)y,d$sup(t,2))$hinge()$in( = )sin$paren($greektext(f))$in( )w$hinge()$in( - )b$in( )$q(dy,dt)
  24.  
  25. (c5) eqz : m*diff(z,t,2) = - b*diff(z,t) - m*g;
  26. |$label(0,15,Times New Roman,$(d5$))m$hinge()$in( )$q($sup(d,2)z,d$sup(t,2))$hinge()$in( = )$in( - )b$in( )$q(dz,dt)$hinge()$in( - )g$in( )m
  27.  
  28. (c6) gen_sol : ode2( eqx, x, t );
  29. C:\MACGOLD5\ode\ode2.fas being loaded.
  30. |$label(0,15,Times New Roman,$(d6$))x$hinge()$in( = )$q($paren(b$in( )cos$paren($greektext(f))$in( )t$in( - )m$in( )cos$paren($greektext(f)),$(,$))$in( )w,$sup(b,2))$hinge()$in( + )%k2$in( )$sup($e(),$in( - )$q(b$in( )t,m))$hinge()$in( + )%k1
  31.  
  32. (c7) xsol : ic2( gen_sol, t=0, x=0, diff(x,t)=v0*cos(theta) );
  33. |$label(0,15,Times New Roman,$(d7$))x$hinge()$in( = )$q($sup($e(),$in( - )$q(b$in( )t,m))$in( )$paren(m$in( )cos$paren($greektext(f))$in( )w$in( - )b$in( )m$in( )cos$paren($greektext(q))$in( )v0,$(,$)),$sup(b,2))$hinge()$in( + )$q($paren(b$in( )cos$paren($greektext(f))$in( )t$in( - )m$in( )cos$paren($greektext(f)),$(,$))$in( )w,$sup(b,2))$hinge()$in( + )$q(m$in( )cos$paren($greektext(q))$in( )v0,b)
  34.  
  35. (c8) gen_sol : ode2( eqy, y, t );
  36. |$label(0,15,Times New Roman,$(d8$))y$hinge()$in( = )$q($paren(b$in( )sin$paren($greektext(f))$in( )t$in( - )m$in( )sin$paren($greektext(f)),$(,$))$in( )w,$sup(b,2))$hinge()$in( + )%k2$in( )$sup($e(),$in( - )$q(b$in( )t,m))$hinge()$in( + )%k1
  37.  
  38. (c9) ysol : ic2( gen_sol, t=0, y=0, diff(y,t)=0 );
  39. |$label(0,15,Times New Roman,$(d9$))y$hinge()$in( = )$q(m$in( )sin$paren($greektext(f))$in( )$sup($e(),$in( - )$q(b$in( )t,m))$in( )w,$sup(b,2))$hinge()$in( + )$q($paren(b$in( )sin$paren($greektext(f))$in( )t$in( - )m$in( )sin$paren($greektext(f)),$(,$))$in( )w,$sup(b,2))
  40.  
  41. (c10) gen_sol : ode2( eqz, z, t );
  42. |$label(0,15,Times New Roman,$(d10$))z$hinge()$in( = )%k2$in( )$sup($e(),$in( - )$q(b$in( )t,m))$hinge()$in( - )$q(b$in( )g$in( )m$in( )t$in( - )g$in( )$sup(m,2),$sup(b,2))$hinge()$in( + )%k1
  43.  
  44. (c11) zsol : ic2( gen_sol, t=0, z=0, diff(z,t)=v0*sin(theta) );
  45. |$label(0,15,Times New Roman,$(d11$))z$hinge()$in( = )$in( - )$q($sup($e(),$in( - )$q(b$in( )t,m))$in( )$paren(b$in( )m$in( )sin$paren($greektext(q))$in( )v0$in( + )g$in( )$sup(m,2),$(,$)),$sup(b,2))$hinge()$in( + )$q(m$in( )sin$paren($greektext(q))$in( )v0,b)$hinge()$in( - )$q(b$in( )g$in( )m$in( )t$in( - )g$in( )$sup(m,2),$sup(b,2))
  46.  
  47. (c12) params : [ g=9.8, b=1., m=100., v0=300., theta=sfloat(%pi/4),
  48.       w=30., phi=sfloat(%pi/2 )]$
  49.  
  50. (c13) xnum : expand(rhs(xsol)), params;
  51. |$label(0,15,Times New Roman,$(d13$))$in( - )21213.2$in( )$sup($e(),$in( - )0.01$in( )t)$hinge()$in( + )9.41751e-6$in( )t$hinge()$in( + )21213.2
  52.  
  53. (c14) ynum : expand(rhs(ysol)), params;
  54. |$label(0,15,Times New Roman,$(d14$))3000.0$in( )$sup($e(),$in( - )0.01$in( )t)$hinge()$in( + )30.0$in( )t$hinge()$in( - )3000.0
  55.  
  56. (c15) znum : expand(rhs(zsol)), params;
  57. |$label(0,15,Times New Roman,$(d15$))$in( - )119213.2$in( )$sup($e(),$in( - )0.01$in( )t)$hinge()$in( - )980.0$in( )t$hinge()$in( + )119213.2
  58.  
  59. (c16) landing_time : root_by_bisection(znum,t,0.,120.);
  60. C:\MACGOLD5\share\bisect.fas being loaded.
  61. |$label(0,15,Times New Roman,$(d16$))40.5581
  62.  
  63. (c17) xlanding : xnum, t=landing_time;
  64. |$label(0,15,Times New Roman,$(d17$))7072.71
  65.  
  66. (c18) ylanding : ynum, t=landing_time;
  67. |$label(0,15,Times New Roman,$(d18$))216.512
  68.  
  69. (c19) landing_distance : sqrt(xlanding^2 + ylanding^2);
  70. |$label(0,15,Times New Roman,$(d19$))7076.02
  71.  
  72. (c20) paramplot(xnum,znum,t,0,landing_time,
  73.   "X","Height","Plot of Height Against X Coordinate")$
  74.  
  75. (c21) paramplot(xnum,ynum,t,0,landing_time,
  76.   "X","Y","Plot of Horizontal Position in 2D")$
  77.  
  78. (c22) /* Clean Up */
  79.       (remvalue(eqx,eqy,eqz,gen_sol,landing_distance,landing_time,params),
  80.        remvalue(xlanding,xnum,xsol,ylanding,ynum,ysol,znum,zsol),
  81.        forget(b>0),remove([x,y,z],dependency))$
  82.